#include "IOT_comm.h"

int publish_fun(char* pcDeviceId, char* pcServiceId, char* pcServiceProperties) {
    // 自行实现mqtt发布消息的功能
    // 参考物联网数认sdk中 IOTA_ServiceDataReport 接口功能
    // 返回值 >0 正常
    return 1;
}

int respond_fun(int mid, int resultcode, char *pcCommandResponse) {
    // 自行实现mqtt命令应答的功能
    // 参考物联网数认sdk中 IOTA_ServiceCommandResponse 接口功能
    // 返回值等于0正常
    return 0;
}

void command_arrive(void* context, int messageId, int code, char* message) {
    // 参考数认sdk中命令接收回调

    // 执行函数解析物模型内容
    _IOT_comm_commandArrivedCallback(context, messageId, code, message);
}

int iot_comm_init_test() {
    int ret;
    IOT_comm_param iot_param;
    char errMsg[50];

    strcpy(iot_param.clientId, "clientId");   // 根据实际clientId初始化
    strcpy(iot_param.deviceId, "deviceId");   // 根据实际deviceId初始化
    // 初始化模块功能
    if ((ret = IOT_comm_init(&iot_param, "./log")) != IOTC_success) {
        IOT_errorCodeDescription(ret, errMsg, sizeof(errMsg));
        printf("errMsg : %s\n", errMsg);
        return -1;
    }

    // 注册消息上报功能
    IOT_comm_register_publish_data(publish_fun);
    // 注册命令应答功能
    IOT_comm_register_command_respond(respond_fun);

    return 0;
}

int iot_comm_deinit_test() {
    return IOT_comm_deInit();
}
